#ifndef KINECTSENSOR_H
#define KINECTSENSOR_H
#include <SensorUtility/Sensor.h>
#include "QKinect.h"

class QKINECTLIB_EXPORT KinectSensor : public Sensor
{
	Q_OBJECT

public:
	KinectSensor (const QString& name,
			NUI_IMAGE_TYPE depthType, NUI_IMAGE_RESOLUTION depthRes,
			NUI_IMAGE_TYPE colorType, NUI_IMAGE_RESOLUTION colorRes,
			const QString& intrinsicFile = "../Data/Intrinsic/default.int",
			const QString& extrinsicFile = "",
			bool bSeatedSkeletonMode = false, bool bNearMode = false,
			bool bFallbackToDefault = true);
	KinectSensor (int idx, const QString& name,
			NUI_IMAGE_TYPE depthType, NUI_IMAGE_RESOLUTION depthRes,
			NUI_IMAGE_TYPE colorType, NUI_IMAGE_RESOLUTION colorRes,
			const QString& intrinsicFile = "../Data/Intrinsic/default.int",
			const QString& extrinsicFile = "",
			bool bSeatedSkeletonMode = false, bool bNearMode = false,
			bool bFallbackToDefault = true);
	~KinectSensor ();

	virtual void start ();

	virtual void stop ();

	QKinect* getKinect () const;

	static int getSensorCount ();

private:
	QKinect* _pKinect;
	int _index;

public slots:
	void handleQKinectNewFrame ();

};

#endif // KINECTSENSOR_H
